(SST) ShlWAPI.pas Version 1.08

Developer Reference
(SST)ShlWAPI PathFindSuffixArray Function
Compares the suffix of a folder or file in a path string to the strings in an array of suffixes.
Scope
Global (i.e. this function can be called/accessed from code in any unit that includes/uses (SST)ShlWAPI.pas).
Syntax
function PathFindSuffixArray(pszPath : LPCSTR; apszSuffix : LPCSTR; iArraySize : Integer) : LPCSTR;
Parameters
pszPath [in] A pointer to the zero-terminated path string with the suffix to compare to the suffixes listed in the array.
apszSuffix [in] A pointer to the array of suffixes to which to compare the path's suffix.
iArraySize [in] The number of strings in the array of suffixes to which the path's suffix is compared.
Return Values
Returns a pointer to the suffix in the array that is identical to the suffix in the path (pszPath).
Remarks
The comparison is case-sensitive.
It is not necessary to specify the suffixes/extensions (in the list of suffixes/extensions) as in the registry under HKEY_CLASSES_ROOT. That is, specifying the leading period in an extension/suffix is optional.
The function does not appear to access the specified file system object in order to determine its extension.
Example
PROCEDURE TForm4.TestShlWAPIPathFindSuffixArray(Sender : TObject); VAR pathandname : STRING; //Contains the file name of which to determine the suffix/extension VAR extensionarr : ARRAY[0..7] OF STRING; //Array consisting of the suffixes/extensions to test the name for VAR extensionarrp : PChar; VAR retsuffixp : PChar; VAR numsuffixes : INTEGER; VAR newinfoline : STRING; BEGIN pathandname := ''; //extensionarr := ''; extensionarrp := NIL; retsuffixp := NIL; numsuffixes := 0; newinfoline := ''; pathandname := 'C:\Windows\Explorer.exe'; extensionarr[0] := 'dll'; extensionarr[1] := 'Exe'; extensionarr[2] := '.exe'; extensionarrp := @extensionarr[0]; numsuffixes := 3; newinfoline := 'PathFindSuffixArray called with : "' + pathandname + '" returned '; Memo1.Lines.Add(newinfoline); retsuffixp := PathFindSuffixArray(PChar(pathandname), extensionarrp, numsuffixes); newinfoline := retsuffixp; Memo1.Lines.Add(newinfoline); pathandname := 'regedit.exe'; extensionarr[0] := 'dll'; extensionarr[1] := '.Exe'; extensionarr[2] := 'exe'; extensionarrp := @extensionarr[0]; numsuffixes := 3; newinfoline := 'PathFindSuffixArray called with : "' + pathandname + '" returned '; Memo1.Lines.Add(newinfoline); retsuffixp := PathFindSuffixArray(PChar(pathandname), extensionarrp, numsuffixes); newinfoline := retsuffixp; Memo1.Lines.Add(newinfoline); Memo1.Lines.Add(''); END;
The above example produces the following output:
PathFindSuffixArray called with : "C:\Windows\Explorer.exe" returned .exe PathFindSuffixArray called with : "regedit.exe" returned exe
Requirements
Unit: Declared and imported in (SST)ShlWAPI.pas
Library: (SST)ShlWAPI.dcu/(SST)ShlWAPI.obj
Unicode: Implemented as ANSI (PathFindSuffixArray and PathFindSuffixArrayA) and Unicode (PathFindSuffixArrayW) functions.
Min. ShlWAPI.dll version according to MS SDK doc.: 5.0
Min. ShlWAPI.dll version based on SST research: 5.0
Min. OS version(s) according to Microsoft SDK doc.: Windows 2000, Windows NT 4.0 with Internet Explorer 5, Windows 98, Windows 95 with Internet Explorer 5
Min. OS version(s) according to SST research.: Windows NT 4.0 with IE 5, Windows 98, Windows 95 with IE 5, Windows 2000 and later
See Also
PathFindFileName, PathFindExtension, PathFindNextComponent, PathGetArgs
 
Windows APIs: PathFindSuffixArray, PathFindFileName, PathFindExtension, PathFindNextComponent, PathGetArgs


Document/Contents version 1.00
Page/URI last updated on 07.12.2023
 
Copyright © Stoelzel Software Technologie (SST) 2010 - 2017
Suggestions and comments mail to:
webmaster@stoelzelsoftwaretech.com